package com.zust513.mapper.rrr;

import com.zust513.entity.Courier;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Mapper
public interface CourierMapperR {
    Courier getCourierById(Integer courierId);
    void updateCourierBalance(Integer courierId, BigDecimal amount);
    List<Courier> getIdleCouriers();
    //void registerCourier(Courier courier);
    void updateCourierAuditStatus(Integer courierId, String status);

    /**
     * 根据用户ID联合查询用户表和配送员表的数据
     * @param userId 用户ID
     * @return 包含用户和配送员信息的 Map
     */
    Map<String, Object> findUserAndCourierByUserId(@Param("userId") Integer userId);

    List<Integer> findRegionIdsByCourierId(Integer courierId);

    void updateCourierStatus(@Param("courierId") Integer courierId, @Param("status") String status);

    /**
     * 获取配送员账户余额
     * @param courierId 配送员 ID
     * @return 当前余额
     */
    BigDecimal getBalanceByCourierId(Integer courierId);

    /**
     * 更新账户余额
     * @param courierId 配送员 ID
     * @param amount 要增加或减少的金额（正数或负数）
     * @return 受影响的行数
     */
    int updateAccountBalance(@Param("courierId") Integer courierId, @Param("amount") BigDecimal amount);
}
